package demo;

import java.util.Scanner;

/*
     if多选结构：
           格式：
               if(判断条件1){
                    当 判断条件1 成立时 , 执行的代码
               }
               else if(判断条件2){
                    当 判断条件2 成立时 , 执行的代码
               }
               ...
               else if(判断条件n){
                    当 判断条件n 成立时 , 执行的代码
               }
               else{
                    当 以上的条件判断都不成立 , 执行的代码
               }
            执行流程：
                从上往下一次判断条件 , 当某一个条件成立时, 执行对应的{}中的代码 , 然后结束if多选结构
                                      当前面的条件都不成立,那么执行else{}中的代码, 然后结束if多选结构
            【随堂练习】
                1、判断一个学生的成绩，如果90（包含）~100（包含）为优秀，70（包含）~90为良好，60（包含）~70为及格，60分以下输出不及格。
                2、输入一个整数month代表月份，根据月份输出对应的季节。
                     春季：3、4、5 夏季：6、7、8 秋季：9、10、11 冬季：12、1、2
                3、输入工作年限(year)和月薪(money)，然后计算出应得的年终奖。
                    工作不满1年（不包含）： 发月薪的1倍月薪年终奖；如果月薪大于8000, 那么就是发1.2倍月薪年终奖。
                    工作不满3年（不包含）：发月薪的2倍月薪年终奖；如果月薪大于15000, 那么就是发3倍月薪年终奖。
                    工作满3年（包含）以上：发月薪的3倍月薪年终奖；如果月薪大于20000, 那么就是发4倍月薪年终奖。
                4、录入一个年份，判断其是否为闰年。
                    闰年的计算方法：年数能被4整除，并且不能被 100整除；或者能被400整除的整数年份。
                5、输入时（hour）、分（minute）、秒（second）的一个具体时间，要求打印出它的下一秒出来（一天24小时）。
                    例如输入的是23时59分59秒，则输出00:00:00；例如输入17时09分59秒，则输出17:10:00。
 */
public class IfDemo2 {
    public static void main(String[] args) {
        /*
         5、输入时（hour）、分（minute）、秒（second）的一个具体时间，要求打印出它的下一秒出来（一天24小时）。
                    例如输入的是23时59分59秒，则输出00:00:00；例如输入17时09分59秒，则输出17:10:00。
         */
        // 1. 键盘分别输入 时（hour）、分（minute）、秒（second）
        Scanner input = new Scanner(System.in);

        System.out.println("请输入小时：");
        int hour = input.nextInt();
        // 对小时的范围做校验
        if (hour < 0 || hour > 23) {
            System.err.println("您输入的小时不合法！");
            return;
        }
        // 程序走到此处说明： hour在[0,23]之间 , 再输入分钟
        System.out.println("请输入分钟：");
        int minute = input.nextInt();
        // 对分钟的范围做校验
        if (minute < 0 || minute > 59) {
            System.err.println("您输入的分钟不合法！");
            return;
        }
        // 程序走到此处说明：minute在[0,59]之间 , 再输入秒钟
        System.out.println("请输入秒钟：");
        int second = input.nextInt();
        // 对秒钟的范围做校验
        if (second < 0 || second > 59) {
            System.err.println("您输入的秒不合法！");
            return;
        }
        // 程序走到此处说明：小时，分钟和秒钟的值都在合法的范围内
        // 让秒钟走一秒
        second++;

        // 判断秒钟是否到达60
        if (second == 60) {
            // 秒钟归零，分钟+1
            second = 0;
            minute++;
            // 判断分钟是否到达60
            if (minute == 60) {
                // 分钟归零，小时+1
                minute = 0;
                hour++;
                // 判断小时是否到达24
                if (hour == 24) {
                    // 小时归零
                    hour = 0;
                }
            }
        }

        // 对小时分钟和秒钟的值做格式处理 :   字符串
        // 1. 将小时 , 分钟 , 秒钟的值产生一套字符串版本           8  ---->  "8"
        String hourStr = hour + "";
        String minuteStr = minute + "";
        String secondStr = second + "";

        // 如果 hour < 10 ,那么就在 hourStr 前面多拼接一个 0
        if(hour < 10){
            hourStr = "0" + hourStr;
        }

        if(minute < 10){
            minuteStr = "0" + minuteStr;
        }
        if(second < 10){
            secondStr = "0" + secondStr;
        }
        // 输出走一秒之后的时间
        System.out.println(hourStr + "时" + minuteStr + "分" + secondStr + "秒");


    }


    public static void main2(String[] args) {
        /*
              3、输入工作年限(year)和月薪(money)，然后计算出应得的年终奖。
                    工作不满1年（不包含）： 发月薪的1倍月薪年终奖；如果月薪大于8000, 那么就是发1.2倍月薪年终奖。
                    工作不满3年（不包含）：发月薪的2倍月薪年终奖；如果月薪大于15000, 那么就是发3倍月薪年终奖。
                    工作满3年（包含）以上：发月薪的3倍月薪年终奖；如果月薪大于20000, 那么就是发4倍月薪年终奖。

                  分析：
                     情况1：  ( year >= 0 && year < 1 ) && money <= 8000    发月薪的1倍月薪年终奖
                     情况2：  ( year >= 0 && year < 1 ) && money > 8000    发月薪的1.2倍月薪年终奖
                     情况3：  ( year >= 1 && year < 3 ) && money <= 15000    发月薪的2倍月薪年终奖
                     情况4：  ( year >= 1 && year < 3 ) && money > 15000    发月薪的3倍月薪年终奖
                     情况5：  ( year >= 3  ) && money <= 20000    发月薪的3倍月薪年终奖
                     情况6：  ( year >= 3  ) && money > 20000    发月薪的4倍月薪年终奖
         */
    }

    public static void main1(String[] args) {
        // 键盘录入一个月份，然后输出对应的季节
        // 1. 键盘录入一个月份：month
        System.out.println("请输入一个月份");
        int month = new Scanner(System.in).nextInt();
        // 2. 校验用户输入的month是否合法
        if (month < 1 || month > 12) { // month不合法
            System.err.println("您输入的月份不合法！");
            return; // 结束main方法
        }
        // 程序走到此处,说明month合法，在[1,12]之间
        /*
             month = 3,4,5     春季
             month = 6,7,8     夏季
             month = 9,10,11     秋季
             month = 12,1,2     冬季
         */
        if (month >= 3 && month <= 5) { // 处理春季的情况
            System.out.println(month + "月是春季");
        } else if (month >= 6 && month <= 8) { // 处理夏季的情况
            System.out.println(month + "月是夏季");
        } else if (month >= 9 && month <= 11) { // 处理秋季的情况
            System.out.println(month + "月是秋季");
        } else {
            System.out.println(month + "月是冬季");
        }
    }
}
